因為 Recurrent Neural Network (RNN) 的每個時間步都具有一個循環連接,將前一時間步的輸出作為當前時間步的輸入,所以我們必須先理解時間序列的資料是甚麼一回事。
時間序列數據是按照時間順序收集的數據,通常包括一系列按時間排列的觀測值。
時間序列數據的關鍵特徵是它們具有時間依賴性。
這代表著過去的觀測值會影響未來的觀測值。
RNN 通過其循環神經元(Recurrent Neurons)的結構,能夠捕捉到這種時間相依性,使其適合處理這類數據。
Recurrent Neural Network (RNN) 用於處理序列數據,例如時間序列、自然語言文本等。
RNN 的主要特點是它具有循環的連接,允許訊息在網路中進行傳遞,以捕捉序列中的時間相依性。
一個基本的 RNN 單元可以表示為以下方程式:
其中,是時間步的隱藏狀態,是輸入數據,是輸出,和是權重矩陣,和是偏差項,是 activation function(通常使用tanh或sigmoid函數)。
RNN 可以用於各種任務,包括自然語言處理、語音識別、時間序列預測等。
然而,它也存在一些問題,如梯度消失和梯度爆炸問題,導致難以捕捉長序列之間的依賴關係。
為了克服這些問題,一些變種模型,如長短時記憶網路(LSTM)和門控循環單元(GRU),已被提出並廣泛應用。
LSTM(長短期記憶神經網路)是一種循環神經網路(RNN)的變體,它是一種用於處理序列數據的深度學習模型。
LSTM 主要用於解決傳統RNN存在的長期依賴性問題,這種問題使得傳統RNN難以捕捉長序列中的有意義的訊息。
LSTM 通過其特殊的設計來解決這個問題,具有三個主要的閘門單元:
控制哪些訊息應該在記憶單元中被遺忘,以適應長期依賴性。
決定哪些新訊息應該被添加到記憶單元中,以捕捉當前時間步的重要訊息。
根據當前時間步的輸入和記憶單元的內容,生成輸出。
更新記憶單元:
最終輸出:
其中,、、分別代表遺忘閘門、輸入閘門和輸出閘門的輸出。
是當前時間步的記憶單元,是當前時間步的輸出。
、、、分別是相應閘門的權重矩陣.
、、、是相應閘門的偏置項,表示將前一時間步的輸出和當前時間步的輸入連接起來。
Gated Recurrent Unit(GRU)是一種循環神經網路(RNN)的變體,用於處理序列數據。
它在序列建模任務中廣泛應用,如自然語言處理(NLP)和時間序列預測。
GRU的核心特點是它具有 Update Gate 和 Reset Gate,這些門控制了訊息的流動。
GRU單元的運算方式如下:
其中,
GRU 通過 Update Gate 和 Reset Gate 控制訊息的流動,有助於捕捉長序列中的依賴關係,同時減少了 LSTM 所需的記憶體開銷。
這使得 GRU 成為一種在許多序列建模任務中效果良好的循環神經網路單元。
明天要開始實作 RNN !
敬請期待